/*
 * @Descripttion: 
 * @Author: chendingfengmail@163.com
 * @version: 
 * @Date: 2021-06-10 13:44:20
 * @LastEditors: chendingfengmail@163.com
 * @LastEditTime: 2022-01-04 14:03:05
 */
import { request } from '../service'
const qs = require('qs');

const userRole = {
  /**
   * 查找角色列表
   */
   findRole(id) {
    return request({
      url: `/auth/role/findById/${id}`,
      method: 'get'
    })
  },

  /**
   * 查找角色列表
   */
  findRoleList(param) {
    return request({
      url: '/auth/role/findByAttributes',
      method: 'get',
      params: addDefaultParam(param)
    })
  },

  /**
   * 查找角色总数
   */
  findRoleListMax(param) {
    return request({
      url: '/auth/role/findMaxByAttributes',
      method: 'get',
      params: addDefaultParam(param)
    })
  },

  /**
   * 查找用户角色最大数
   */
  findUserRoleMax(param) {
    return request({
      url: '/auth/userRole/findMaxByAttributes',
      method: 'get',
      params: addDefaultParam(param)
    })
  },
  /**
   * 通过用户名查找用户角色
   */
  findRoleByUserName(userName) {
    return request({
      url: '/auth/role/findByUsername/' + userName,
      method: 'get',
      params: addDefaultParam({})
    })
  },

  /**
   * 查找用户角色详情列表
   */
  findUserRoleList(param) {
    return request({
      url: '/auth/userRole/findByAttributes',
      method: 'get',
      params: param
    })
  },

  /**
   * 添加用户角色
   */
  addUserRole(param) {
    return request({
      url: '/auth/userRole/add',
      method: 'post',
      data: param
    })
  },

  /**
   * 删除角色
   * @param {String} roleId - 用户权限ID
   */
  delUserRole(roleId) {
    return request({
      url: '/auth/userRole/delete/' + roleId,
      method: 'delete'
    })
  },

  /**
   * 设置用户角色
   * @param {String} userId - 用户Id
   * @param {String} roleIds - 权限Id列表（以逗号分割）
   */
  resetUserRole(param) {
    return request({
      url: '/auth/userRole/reset',
      method: 'get',
      params: param,
      paramsSerializer: params => {
        return qs.stringify(params, {
          indices: false
        })
      }
    })
  },

  /**
   * 更新用户角色
   * @param {JSON} param - 用户角色信息
   */
  updateUserRole(param) {
    return request({
      url: '/auth/userRole/update',
      method: 'put',
      data: param
    });
  },

  /**
   * 添加角色
   * @param {JSON} param - 角色信息
   */
  addRole(param) {
    return request({
      url: '/auth/role/add',
      method: 'post',
      data: addDefaultParam(param)
    });
  },

  /**
   * 更新角色
   * @param {JSON} param - 角色信息
   */
  updateRole(param) {
    return request({
      url: '/auth/role/update',
      method: 'put',
      data: addDefaultParam(param)
    });
  },


  /**
   * 删除角色
   * @param {String} roleId - 角色id
   */
  deleteRole(roleId) {
    return request({
      url: '/auth/role/delete/' + roleId,
      method: 'delete'
    })
  },

  /**
   * 批量删除角色
   * @param {String} roleId - 角色id
   */
   deleteBatch(params) {
    return request({
      url: '/auth/role/deleteBatch',
      method: 'delete',
      params: params,
      paramsSerializer: function(params) {
          return qs.stringify(params, {arrayFormat: 'repeat'})
      }
    })
  }
}

/**
 * 添加缺省参数值
 * @param {*} param 原始参数
 * @returns 携带缺省参数返回
 */
function addDefaultParam(param) {
  let params = param;
  params['app'] = process.env.VUE_APP_SYSTEM_NAME;
  return params;
}

export default userRole;
